package cn.edu.csmzxy.rk233x.auth_system.config;
import io.swagger.v3.oas.models.Components;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Contact;
import io.swagger.v3.oas.models.info.Info;
import io.swagger.v3.oas.models.info.License;
import io.swagger.v3.oas.models.security.SecurityRequirement;
import io.swagger.v3.oas.models.security.SecurityScheme;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
 * @author wumxing
 * @date 2025/10/15 9:47
 * @description
 */

@Configuration
public class SwaggerConfig {
//    // 配置 Swagger 文档基本信息 + JWT 认证支持
//    @Bean
//    public OpenAPI customOpenAPI() {
//        // 1. 定义 JWT 安全方案（指定令牌类型为 Bearer Token）
//        SecurityScheme securityScheme = new SecurityScheme()
//                .type(SecurityScheme.Type.HTTP)  // HTTP 认证
//                .scheme("bearer")  // 认证方案：bearer
//                .bearerFormat("JWT")  // 令牌格式：JWT
//                .in(SecurityScheme.In.HEADER)  // 令牌位置：请求头
//                .name("Authorization");  // 请求头名称（与 JWT 配置一致）
//
//        // 2. 全局应用该安全方案（所有接口默认需要认证）
//        SecurityRequirement securityRequirement = new SecurityRequirement().addList("JWT");
//
//        // 3. 构建 OpenAPI 文档信息
//        return new OpenAPI()
//                .info(new Info()
//                        .title("权限管理系统 API文档")
//                        .description("基于Spring Boot 3.5.6 + RBAC模型的权限管理系统接口文档（支持JWT认证）")
//                        .version("1.0.0")
//                        .contact(new Contact().name("wmxing").email("171031011@qq.com"))
//                        .license(new License().name("MIT License").url("https://opensource.org/licenses/MIT")))
//                // 4. 关联安全方案
//                .components(new Components().addSecuritySchemes("JWT", securityScheme))
//                // 5. 全局启用认证（可在接口上通过 @SecurityRequirement 单独控制）
//                .addSecurityItem(securityRequirement);
//
//
//    }
}
